import { resolve } from 'path';

import react from '@vitejs/plugin-react-swc';
import { defineConfig } from 'vite';
import markdown from 'vite-plugin-markdown-html';
// import requireTransform from 'vite-plugin-require-transform';
import requireTransform from './vite-plugin-require';

export default defineConfig({
  server: {
    open: true,
    host: true,
    proxy: {
      '/api': {
        target: 'https://your-api-server.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
  resolve: {
    alias: {
      '@': resolve(__dirname, './src'),
    },
  },
  assetsInclude: ['**/*.md'], // 添加这行来处理 .md 文件
  plugins: [
    react({
      plugins: [
        // [
        //   resolve(
        //     __dirname,
        //     '../packages/vite-plugin-css-modules-swc/vite_plugin_css_modules_swc.wasm',
        //   ),
        //   {},
        // ],
        // [
        //   resolve(__dirname, '../packages/vite-plugin-import-swc/vite_plugin_import_swc.wasm'),
        //   [
        //     // 方式1：使用 style 对象配置
        //     {
        //       libraryName: '@fexd/mobile',
        //       libraryDirectory: 'es/exports',
        //       camelToDashComponentName: false,
        //       style: {
        //         // 选择以下一种方式：
        //         // 方式1：使用 styleLibraryDirectory
        //         // styleLibraryDirectory: '',
        //         // styleName: 'style.less',
        //         // 方式2：使用 custom（使用 {{name}} 和 {{path}}）
        //         // custom: '{{path}}/{{name}}/style.less', // 会生成 @fexd/mobile/es/exports/Button/style.less
        //         custom: '@fexd/mobile/es/exports/{{name}}/style.less',
        //       },
        //     },
        //     // 方式2：使用模板（推荐，完全匹配实际路径）
        //     // {
        //     //   libraryName: '@fexd/mobile',
        //     //   libraryDirectory: 'es/exports',
        //     //   camelToDashComponentName: false,
        //     //   style: '{{name}}/style.less',
        //     // },
        //     // {
        //     //   libraryName: '@fexd/mobile',
        //     //   libraryDirectory: 'es/exports',
        //     //   camelToDashComponentName: false,
        //     //   style: '{{path}}/{{name}}/style.less',
        //     // },
        //     // 方式3：使用 customStyleName（也可以）
        //     // {
        //     //   libraryName: '@fexd/mobile',
        //     //   libraryDirectory: 'es/exports',
        //     //   camelToDashComponentName: false,
        //     //   customStyleName: '@fexd/mobile/es/exports/{{name}}/style.less', // {{path}} 会被替换为完整的组件路径
        //     // },
        //     // lodash 按需加载配置
        //     {
        //       libraryName: 'lodash',
        //       libraryDirectory: '',
        //       camelToDashComponentName: false,
        //     },
        //     // lodash-es 按需加载配置（如果你使用 ES 模块）
        //     {
        //       libraryName: 'lodash-es',
        //       libraryDirectory: '',
        //       camelToDashComponentName: false,
        //     },
        //   ],
        // ],
        // [
        //   resolve(__dirname, '../packages/vite-plugin-require-swc/vite_plugin_require_swc.wasm'),
        //   {},
        // ],
      ],
    }),
    markdown(),
    requireTransform({
      fileRegex: /.ts$|.tsx$|.js$|.jsx$/,
    }),
  ],
  // 添加 CSS Modules 配置
  css: {
    modules: {
      scopeBehaviour: 'local',
      globalModulePaths: [/\.global\.(css|scss|sass|less)$/],
      generateScopedName: '[name]__[local]__[hash:base64:5]',
      localsConvention: 'camelCase',
    },
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          react: ['react', 'react-dom'],
        },
      },
    },
  },
});
